package com.tzy.myassets.mapper;

import com.tzy.common.entity.MyAssets;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.sql.Timestamp;
import java.util.List;

/**
 * <p>
 * 我的资产表(优惠红包, 卡券等) Mapper 接口
 * </p>
 *
 * @author 刘同学
 * @since 2022-03-02
 */
public interface MyAssetsMapper extends BaseMapper<MyAssets> {

    /**
     * 删除数据
     *
     * @param id 资产id
     * @return 返回受影响行数
     */
    @Delete("DELETE FROM `my_assets` WHERE `id`=#{id}")
    public int assetsDel(Integer id);

    /**
     * 更新deadline
     *
     * @param userId   用户id
     * @param deadline 截止时间
     * @return 返回受影响行数
     */
    @Update("UPDATE `my_assets` SET expired=1 WHERE user_id=#{userId} AND deadline<#{deadline} ")
    public int assetsUpdate(Integer userId, Timestamp deadline);

    /**
     * 更新use
     * @param userId 用户id
     * @return
     */
    @Update("UPDATE `my_assets` SET `use`=1,useDate=NOW() WHERE user_id=#{userId}")
    public int updateUse(Integer userId);

    /**
     * 根据id查询红包
     * @param id 用户id
     * @return
     */
    @Select("select `id`,user_id,shop_id,cash_coupon_name,threshold,preferential_amount,deadline,effective_date,expired,introduction_to_use " +
            "from `my_assets` where user_id=#{id} and `use`=0")
    public List<MyAssets> assetsSel(int id);


    /**
     * 后台资产查询分页
     * @param pageNum 起始位
     * @param size 每页总条数
     * @return
     */
    public List<MyAssets> assetsPage(Integer pageNum,Integer size);

    /**
     * 查询数据条数
     * @return
     */
    @Select("select count(1) from my_assets")
    int findTotal();

    /**
     * 查询商家代金券
     * @param id
     * @return
     */
    List<MyAssets> assetsSelShop(@Param("id") int id);

    /**
     * 查询近7天已使用的优惠券
     * @param id 用户id
     * @return
     */
    List<MyAssets> nearlySevenUseDate(@Param("id")int id);
}
